# Index: OSLib/!OsLib/Source/Test/Test1/GNUmakefile	20040504
#===================================================================
# $Header$

#------------------------------------------------------------------------
# paths & directories
SOURCEDIR	= ../..
include ${SOURCEDIR}/GNUmakefile.settings
include ${SOURCEDIR}/../GNUmakefile.settings

#------------------------------------------------------------------------
#target-specific macros
SOURCES_0 	:= Computer Core Toolbox User
SOURCES		:= ${SOURCES_0} Types Macros
CONTENTS	:= $(addsuffix /oslib/Modules, $(addprefix ${SOURCEDIR}/, ${SOURCES_0}) )
OSLIB		:= ${SOURCEDIR}/OSLib.o
OSLIB32		:= ${SOURCEDIR}/OSLib32.o
OSLIB_H		:= oslib.h
OSLIB_HH	:= OSLib.Hdr

INCLUDES	:= $(addprefix -I${SOURCEDIR}/, ${SOURCES} )

ASOPTIONS	:= $(shell echo -objasm -apcs32 $(addprefix -I${SOURCEDIR}/, ${SOURCES} ) | \
			sed 's/ /,/g' )

#------------------------------------------------------------------------
# tools
AS		= ${GCCSDK_INSTALL_CROSSBIN}/gcc -xassembler -Wa,${ASOPTIONS}
GCC		= ${GCCSDK_INSTALL_CROSSBIN}/gcc
GPP		= ${GCCSDK_INSTALL_CROSSBIN}/g++
LD		= ${GCCSDK_INSTALL_CROSSBIN}/gcc
RM		= rm -f

tolower = $(shell echo $(1) | tr '[A-Z]' '[a-z]';)

#------------------------------------------------------------------------
include ${CONTENTS}

VPATH		:= $(addsuffix /oslib/, $(addprefix ${SOURCEDIR}/, ${SOURCES_0}) )

#------------------------------------------------------------------------
# Targets:
.PHONY:		all clean

TEST_C		= test.c
TEST_CPP	= test.cpp
TEST_S		= test.s

OBJS		:= $(addsuffix .o, ${SWIMODULES} ${MODULES})
OBJ_C		:= $(addprefix c_, $(call tolower, ${OBJS}))
OBJ_S		:= $(addprefix s_, ${OBJS})

all:		${OBJ_C} ${OBJ_S}
test_c:		${OBJ_C}
test_s:		${OBJ_S}

c_%.o:	%.h
	@echo "Testing $(subst .o,.h,$(subst c_,,$@))"
	@echo "#include \"oslib/$(subst .o,.h,$(subst c_,,$@))\"" >> include.h
	@${GCC} -c ${TEST_C} ${INCLUDES} -o /dev/null
	@touch $@

s_%.o:	%.Hdr
	@echo "Testing $(subst .o,.Hdr,$(subst s_,,$@))"
	@echo "       GET        oslib/$(subst .o,.Hdr,$(subst s_,,$@))" >> include.Hdr
	@${AS} -c ${TEST_S} -o /dev/null
	@touch $@

clean:	;-${RM} include.h include.Hdr c_*.o s_*.o
